﻿/**  
* Authorization.cs
*
* 功 能： N/A
* 类 名： Authorization
*
* Ver    变更日期             负责人  变更内容
* ───────────────────────────────────
* V0.01  2014/6/29/星期日 21:25:30   N/A    初版
*
* Copyright (c) 2014  Spring Story  Corporation. All rights reserved.
*┌──────────────────────────────────┐
*│　此技术信息为本公司机密信息，未经本公司书面同意禁止向第三方披露．　│
*│　版权所有： Spring Story 有限公司　　　　　　　　　　　　　　│
*└──────────────────────────────────┘
*/
using System;
using System.Data;
using System.Collections.Generic;
using eTruck.Common;
using eTruck.Model;
using eTruck.DALFactory;
using eTruck.IDAL;
namespace eTruck.BLL
{
	/// <summary>
	/// Authorization
	/// </summary>
	public partial class Authorization
	{
		private readonly IAuthorization dal=DataAccess.CreateAuthorization();
		public Authorization()
		{}
		#region  BasicMethod

		/// <summary>
		/// 得到最大ID
		/// </summary>
		public int GetMaxId()
		{
			return dal.GetMaxId();
		}

		/// <summary>
		/// 是否存在该记录
		/// </summary>
		public bool Exists(int RoleID,int ModuleID)
		{
			return dal.Exists(RoleID,ModuleID);
		}

		/// <summary>
		/// 增加一条数据
		/// </summary>
		public bool Add(eTruck.Model.Authorization model)
		{
			return dal.Add(model);
		}

		/// <summary>
		/// 更新一条数据
		/// </summary>
		public bool Update(eTruck.Model.Authorization model)
		{
			return dal.Update(model);
		}

		/// <summary>
		/// 删除一条数据
		/// </summary>
		public bool Delete(int RoleID,int ModuleID)
		{
			
			return dal.Delete(RoleID,ModuleID);
		}

		/// <summary>
		/// 得到一个对象实体
		/// </summary>
		public eTruck.Model.Authorization GetModel(int RoleID,int ModuleID)
		{
			
			return dal.GetModel(RoleID,ModuleID);
		}

		/// <summary>
		/// 得到一个对象实体，从缓存中
		/// </summary>
		public eTruck.Model.Authorization GetModelByCache(int RoleID,int ModuleID)
		{
			
			string CacheKey = "AuthorizationModel-" + RoleID+ModuleID;
			object objModel = eTruck.Common.DataCache.GetCache(CacheKey);
			if (objModel == null)
			{
				try
				{
					objModel = dal.GetModel(RoleID,ModuleID);
					if (objModel != null)
					{
						int ModelCache = eTruck.Common.ConfigHelper.GetConfigInt("ModelCache");
						eTruck.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);
					}
				}
				catch{}
			}
			return (eTruck.Model.Authorization)objModel;
		}

		/// <summary>
		/// 获得数据列表
		/// </summary>
		public DataSet GetList(string strWhere)
		{
			return dal.GetList(strWhere);
		}
		/// <summary>
		/// 获得前几行数据
		/// </summary>
		public DataSet GetList(int Top,string strWhere,string filedOrder)
		{
			return dal.GetList(Top,strWhere,filedOrder);
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public List<eTruck.Model.Authorization> GetModelList(string strWhere)
		{
			DataSet ds = dal.GetList(strWhere);
			return DataTableToList(ds.Tables[0]);
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public List<eTruck.Model.Authorization> DataTableToList(DataTable dt)
		{
			List<eTruck.Model.Authorization> modelList = new List<eTruck.Model.Authorization>();
			int rowsCount = dt.Rows.Count;
			if (rowsCount > 0)
			{
				eTruck.Model.Authorization model;
				for (int n = 0; n < rowsCount; n++)
				{
					model = dal.DataRowToModel(dt.Rows[n]);
					if (model != null)
					{
						modelList.Add(model);
					}
				}
			}
			return modelList;
		}

		/// <summary>
		/// 获得数据列表
		/// </summary>
		public DataSet GetAllList()
		{
			return GetList("");
		}

		/// <summary>
		/// 分页获取数据列表
		/// </summary>
		public int GetRecordCount(string strWhere)
		{
			return dal.GetRecordCount(strWhere);
		}
		/// <summary>
		/// 分页获取数据列表
		/// </summary>
		public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
		{
			return dal.GetListByPage( strWhere,  orderby,  startIndex,  endIndex);
		}
		/// <summary>
		/// 分页获取数据列表
		/// </summary>
		//public DataSet GetList(int PageSize,int PageIndex,string strWhere)
		//{
			//return dal.GetList(PageSize,PageIndex,strWhere);
		//}

		#endregion  BasicMethod
		#region  ExtensionMethod
        public DataSet GetModuleIDByRoleID(int RoleID)
        {
            return dal.GetModuleIDByRoleID(RoleID);
        }
        public bool UpdateRoleModule(int RoleID, List<int> ModuleIDs)
        {
            return dal.UpdateRoleModule(RoleID, ModuleIDs);
        }
		#endregion  ExtensionMethod
	}
}

